Unified Service Tagging
GPT-4.icon
https://gyazo.com/3461059a529110622944789c87a4112b
Datadog における 統合サービスタグ付け(Unified Service Tagging) は、Datadog が提供するすべてのテレメトリデータ(トレース、メトリクス、ログなど)を 一貫した方法で整理・分析・可視化 できるようにするための仕組みです。具体的には、次の3つの 予約済みタグ を使います:
env: 実行環境(例:production, staging など)
service: サービス名(例:user-service)
version: デプロイバージョン(例:1.2.3 や abc123)
✅ メリット(なぜ使うか)
1. トレースやメトリクスをバージョン単位で分析できる
→ どのデプロイがパフォーマンスやエラーに影響したかを特定しやすくなる。
2. ログ・トレース・メトリクスを跨って横断的に観察できる
→ 例えば、トレースから関連ログにジャンプ、そこから該当メトリクスに飛ぶ、などがシームレスにできる。
3. 環境やサービス単位でのダッシュボードやアラート構成が楽になる
→ env:production のトラフィックが急増、などの条件でアラートできる。
🔧 構成方法のポイント
コンテナ化された環境(Kubernetes / Docker)
ラベル付け & 環境変数の注入 が基本。
Kubernetes では、Deployment の metadata.labels と template.metadata.labels に下記を指定:
code:yaml
tags.datadoghq.com/env: "prod"
tags.datadoghq.com/service: "api"
tags.datadoghq.com/version: "1.0.0"
同時に env キーとしてコンテナに注入:
code:yaml
- name: DD_ENV
valueFrom:
fieldRef:
OpenTelemetry を使っている場合は OTEL_RESOURCE_ATTRIBUTES に以下を指定:
code:yaml
service.name=api,service.version=1.0.0,deployment.environment=prod
非コンテナ環境
プロセス起動時に環境変数で指定:
code:bash
DD_ENV=prod DD_SERVICE=api DD_VERSION=1.0.0 ./your-app
APM 自動バージョン付与
version タグは以下のような優先順位で自動付与:
1. 明示的な DD_VERSION
2. image_tag + git commit sha
3. どちらか一方(あれば)
OpenTelemetry
OpenTelemetry の属性を Datadog のタグにマッピング:
service.name → service
service.version → version
deployment.environment → env
⚠ 注意点
version タグが適切に設定されていないと、どのバージョンのコードが問題を起こしているか追えない。
スパンやメトリクスにおける service, env, version のタグは Datadog 内で横断的なフィルタリングに必須。
APM やログの関連づけにはこれらのタグがないと分析が難しくなる。